<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets"
                template="../../resources/templates/login.xhtml"
                xmlns:p="http://primefaces.org/ui"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:sec="http://www.springframework.org/security/facelets/tags" >

    <ui:define name="menu_horizontal">
        <sec:ifAnyGranted roles="ROLE_SERVIDOR,ROLE_ADMINISTRADOR">
            <ui:include src="/site/acessoServidor/menu.xhtml" />
        </sec:ifAnyGranted>
    </ui:define>

    <ui:define name="corpo">
        <sec:ifAnyGranted roles="ROLE_SERVIDOR,ROLE_ADMINISTRADOR">

            <h:form id="formSalvar">
                <p:panel  header="Manter de Turma"> 
                    <p:growl id="growl" showDetail="true" sticky="true" /> 
                    <p:messages id="msgs"/> 
                    <h:panelGrid columns="2" >

                        Período Letivo: 

                        <p:selectOneMenu value="#{controllerTurma.turma.periodoletivo}" converter="#{PeriodoLetivoConverter}" style="width: 200px" required="true"  requiredMessage="Campo Período Letivo é obrigatório.">
                            <f:selectItem itemLabel="-- Selecione --" noSelectionOption="true"/>
                            <f:selectItems value="#{controllerPeriodoLetivo.lista}" var="tipo" itemValue="#{tipo}" itemLabel= "#{tipo.ano}/#{tipo.semestre}"/>
                        </p:selectOneMenu>                               

                        Matriz Curricular:
                        <p:selectOneMenu value="#{controllerTurma.turma.matrizcurricular}" converter="#{MatrizCurricularConverter}" style="width: 200px" required="true"  requiredMessage="Campo Matriz Currícular é obrigatório.">
                            <f:selectItem itemLabel="-- Selecione --" noSelectionOption="true"/>
                            <f:selectItems value="#{controllerMatriz.lista}" var="tipo" itemValue="#{tipo}" itemLabel="#{tipo.curso.nome}/#{tipo.inicio_vigencia}"/>
                        </p:selectOneMenu>
                        
                        Número da Turma:
                        <p:spinner value="#{controllerTurma.turma.numero_turma}"  style="width: 200px"/>


                        Turno:* 
                        <p:selectOneMenu value="#{controllerTurma.turma.turno}" style="width: 200px" required="true"  requiredMessage="Campo Turno é obrigatório." >
                            <f:selectItem itemLabel="-- Selecione --" noSelectionOption="true"/>
                            <f:selectItem itemLabel="Matutino" itemValue="Matutino" />
                            <f:selectItem itemLabel="Vespertino" itemValue="Vespertino" />
                            <f:selectItem itemLabel="Noturno" itemValue="Noturno" />

                        </p:selectOneMenu>

                        <p:commandButton value="Salvar" ajax="true" actionListener="#{controllerTurma.salvar()}" update="@form"/>

                        </h:panelGrid>
                </p:panel>

                <p:dataTable id="tabela" var="p" value="#{controllerTurma.listaDM}" emptyMessage="Nada encontrado..."
                             paginator="true" rows="5" paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}" 
                             rowsPerPageTemplate="5,10,15" >
                    <p:column  headerText="Turma">
                        <h:outputText value="#{p.numero_turma}"/>
                    </p:column>

                    <p:column headerText="Ano" filterBy="#{p.periodoletivo.ano}/#{p.periodoletivo.semestre}">
                        <h:outputText value="#{p.periodoletivo.ano}/#{p.periodoletivo.semestre}"/>
                    </p:column>

                    <p:column headerText="Matriz Curricular" filterBy="#{p.matrizcurricular.curso.nome}/#{p.matrizcurricular.inicio_vigencia}">
                        <h:outputText value="#{p.matrizcurricular.curso.nome}/#{p.matrizcurricular.inicio_vigencia}"/>
                    </p:column>

                    <p:column headerText="Turno" filterBy="#{p.turno}">
                        <h:outputText value="#{p.turno}"/>
                    </p:column>

                    <p:column width="55">
                        <p:commandLink actionListener="#{controllerTurma.prepararAlterar()}" process="@this" oncomplete="dialogAlterar.show();" update=":formAlterar">
                        <p:graphicImage  value="/resources/images/edit.png" />  
                        </p:commandLink>    
               
                        <p:commandLink actionListener="#{controllerTurma.remover()}" process="@this" update="@form">
                        <p:graphicImage  value="/resources/images/delete.png" />
                        </p:commandLink>
                    </p:column>
                </p:dataTable>



            </h:form>

            <p:dialog widgetVar="dialogAlterar" resizable="false" closable="false" modal="true" showEffect="slide" hideEffect="slide">
                <h:form id="formAlterar">
                    <p:panel style="width: 320px;">
                        <p:messages id="msgs"/> 
                        <h:panelGrid columns="2">


                            Periodo Letivo: 

                            <p:selectOneMenu value="#{controllerTurma.turma.periodoletivo}" converter="#{PeriodoLetivoConverter}" style="width: 200px">
                                
                                <f:selectItems value="#{controllerPeriodoLetivo.lista}" var="tipo" itemValue="#{tipo}" itemLabel="#{tipo.ano}/#{tipo.semestre}"/>
                            </p:selectOneMenu>

                            Matriz Curricular:
                            <p:selectOneMenu value="#{controllerTurma.turma.matrizcurricular}" converter="#{MatrizCurricularConverter}" style="width: 200px">
                                
                                <f:selectItems value="#{controllerMatriz.lista}" var="tipo" itemValue="#{tipo}" itemLabel="#{tipo.curso.nome}"/>
                            </p:selectOneMenu>
                            
                            Número da Turma:
                            <p:spinner value="#{controllerTurma.turma.numero_turma}"  style="width: 200px"/>


                            Turno: <p:selectOneMenu value="#{controllerTurma.turma.turno}"  style="width: 200px">
                                
                                <f:selectItem itemLabel="Matutino" itemValue="Matutino" />
                                <f:selectItem itemLabel="Vespetino" itemValue="Vespetino" />
                                <f:selectItem itemLabel="Noturno" itemValue="Noturno" />

                            </p:selectOneMenu>

                            <p:commandButton value="Alterar" actionListener="#{controllerTurma.alterar()}" oncomplete="dialogAlterar.hide()" update=":formSalvar" 
                                             style="margin-top: 30px"/>
                            <p:commandButton value="cancelar" actionListener="#{controllerTurma.limpar()}" oncomplete="dialogAlterar.hide()" update=":formSalvar" 
                                             style="margin-top: 30px;margin-left: 0px;"/>
                        </h:panelGrid>
                    </p:panel>
                </h:form>
            </p:dialog>


        </sec:ifAnyGranted>
    </ui:define>

</ui:composition>
